package cn.juque.workflow.api.dto.taskinfo;

import cn.juque.common.abstracts.AbstractRequestDTO;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * @author juque
 * @version 1.0.0
 * <ul>
 *     <li>ProcessCreateInstanceDTO</li>
 * </ul>
 * @date 2023-01-27 16:25:44
 **/
@Data
public class ProcessCreateInstanceDTO extends AbstractRequestDTO {

    /**
     * 流程定义ID
     */
    @NotEmpty(message = "流程key不能为空")
    @Size(message = "流程key不能超过{max}个字符", max = 64)
    private String processDefinitionKey;

    /**
     * true=发起流程；false=不发起流程，默认false
     */
    private Boolean startTask;

    /**
     * true=自动审批通过第一个节点，并且处理人就是发起人
     * <ul>
     *     <li>自动审批通过第一个节点，并且处理人就是发起人</li>
     *     <li>false=反之；默认true</li>
     * </ul>
     */
    private Boolean skipFirstTask;

    /**
     * 实体类信息
     */
    @NotNull(message = "实体类信息不能为空")
    private JSONObject jsonObject;

    /**
     * 变量集合
     */
    private JSONObject variables;
}
